﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using GestorDeFlotasDesktop.AbmChofer;

namespace GestorDeFlotasDesktop.RendicionDeCuenta
{
    public partial class RendirViajes : Form
    {
        public RendirViajes()
        {
            InitializeComponent();
        }

        private void buttonCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public int id_chofer;

        private void llenarTurnos()
        {
            sqlManager.Conectar();
            comboBoxTurno.DataSource = sqlManager.ObtenerTurnos();
            sqlManager.Desconectar();

            comboBoxTurno.ValueMember = "ID";
            comboBoxTurno.DisplayMember = "Descripcion";
            comboBoxTurno.SelectedIndex = 0;
        }

        private void RendirViajes_Load(object sender, EventArgs e)
        {
            llenarTurnos();
            labelClienteCO.Visible = false;
            labelTurnoCO.Visible = false;
            buttonFacturar.Visible = false;
        }

        private void buttonSeleccionarChofer_Click(object sender, EventArgs e)
        {
            ListadoChofer formListadoChofer = new ListadoChofer(); //Busca Chofer
            formListadoChofer.ShowDialog(this);
            if (formListadoChofer.datoChofer.id_chofer != 0)   //No se cancelo la busqueda
            {
                textBoxChofer.Text = formListadoChofer.datoChofer.nombre;
                id_chofer = formListadoChofer.datoChofer.id_chofer;
                //Muestra el nombre pero cuando se manda a guardar se manda la id   
            }
        }

        private void buttonLimpiar_Click(object sender, EventArgs e)
        {
            textBoxChofer.Text = string.Empty;
            textBoxImporteTotal.Text = string.Empty;
            dGridResultado.Visible = false;
        }

        #region ningunNull
        public int ningunNull()
        {
            int resultado = 1;
            if (textBoxChofer.Text == string.Empty)
            {
                labelClienteCO.Visible = true;
                resultado = 0;
            }

            if (comboBoxTurno.SelectedIndex == 0)
            {
                labelTurnoCO.Visible = true;
                resultado = 0;
            }

            return resultado;
        }
        #endregion

        private void buttonBuscar_Click(object sender, EventArgs e)
        {
            labelClienteCO.Visible = false;
            labelTurnoCO.Visible = false;
            buttonFacturar.Visible = false;

            if (ningunNull() == 1)
            {
                sqlManager.Conectar();
                dGridResultado.DataSource = sqlManager.ObtenerViajesChofer(dateTimePicker.Text, id_chofer, comboBoxTurno.SelectedValue.ToString());
                textBoxImporteTotal.Text = Convert.ToString(sqlManager.ObtenerImporteTotalChofer(dateTimePicker.Text, id_chofer, comboBoxTurno.SelectedValue.ToString()));
                sqlManager.Desconectar();

                if (dGridResultado.RowCount > 0 && textBoxImporteTotal.Text != "-1")
                {
                    buttonFacturar.Visible = true;
                    dGridResultado.Visible = true;
                }
            }
        }

        private void buttonFacturar_Click(object sender, EventArgs e)
        {
            sqlManager.Conectar();
            int resultado = sqlManager.FacturarChofer(dateTimePicker.Text, id_chofer, comboBoxTurno.SelectedValue.ToString(), textBoxImporteTotal.Text);
            sqlManager.Desconectar();

            if (resultado != 1)
            {
                MessageBox.Show("No se pudo facturar", "Log", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                sqlManager.Conectar();
                sqlManager.RendicionItem(dateTimePicker.Text, id_chofer, comboBoxTurno.SelectedValue.ToString());
                sqlManager.Desconectar();
                MessageBox.Show("Se facturo correctamente", "Log", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}
